#!/usr/bin/env python3
# -*- coding:utf-8 -*-

# ttk 子模块的官方文档：https://docs.python.org/3.7/library/tkinter.ttk.html
# 我们再前面学的组件是tkinter 模块下的组件，整体风格较老较丑。
# 为了弥补这点不足，推出了ttk 组件。ttk 组件更加美观、功能更加强大。
# 使用Combobox 替代了原来的Listbox 、
# 新增了LabeledScale( 带标签的Scale) 、Notebook(多文档窗口)、Progressbar(进度条)、Treeview(数)等组件。
# 使用ttk 组件与使用普通的Tkinter 组件并没有多大的区别，只要导入ttk 模块即可。
# 二者都有的组件，ttk将会覆盖Tkinter；ttk有而Tkinter没有的，将采用ttk的特性。
# 当然，ttk和tkinter还是有一些区别的。
# 如 Tkinter 中的fg,bg 在ttk中并不被支持，ttk是通过style这个对象来实现的。

from tkinter import *
from tkinter import ttk


class Application(Frame):
    """一个经典的GUI程序的类的写法"""

    def __init__(self, master=None):
        super().__init__(master)  # super()代表的是父类的定义，而不是父类对象
        self.master = master
        self.pack()
        self.createWidget()

    def createWidget(self):
        """创建组件"""
        style = ttk.Style()
        style.configure("BW.TLabel", foreground="black", background="green")

        self.label_01 = ttk.Label(text="Test", style="BW.TLabel")
        self.label_01.pack()
        self.label_02 = ttk.Label(text="Test", style="BW.TLabel")
        self.label_02.pack()


if __name__ == '__main__':
    root = Tk()
    root.geometry("400x100+200+300")
    root.title("一个经典的GUI程序类的测试")
    app = Application(master=root)
    root.mainloop()





